package org.jeecg.modules.xxgx.hzsqgl.service;

import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.innerApi.common.requestDto.*;
import org.jeecg.modules.innerApi.common.responseDto.FileStreamRtn;
import org.jeecg.modules.innerApi.common.responseDto.InvoiceRtn;
import org.jeecg.modules.xxgx.hzsqgl.entity.CsXxHzsqjsmx;
import org.jeecg.modules.xxgx.hzsqgl.entity.CsXxHzsqjs;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.xxgx.hzsqgl.vo.CsXxHzsqjsPage;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

/**
 * @Description: 红字申请
 * @Author: jeecg-boot
 * @Date:   2023-09-15
 * @Version: V1.0
 */
public interface ICsXxHzsqjsService extends IService<CsXxHzsqjs> {

	/**
	 * 添加一对多
	 *
	 * @param csXxHzsqjs
	 * @param csXxHzsqjsmxList
	 */
	public void saveMain(CsXxHzsqjs csXxHzsqjs, List<CsXxHzsqjsmx> csXxHzsqjsmxList) ;
	
	/**
	 * 修改一对多
	 *
   * @param csXxHzsqjs
   * @param csXxHzsqjsmxList
	 */
	public void updateMain(CsXxHzsqjs csXxHzsqjs, List<CsXxHzsqjsmx> csXxHzsqjsmxList);
	
	/**
	 * 删除一对多
	 *
	 * @param id
	 */
	public void delMain(String id);
	
	/**
	 * 批量删除一对多
	 *
	 * @param idList
	 */
	public void delBatchMain(Collection<? extends Serializable> idList);
	/**
	 * 红字信息表添加、修改
	 *
	 * @param page
	 */
	Result saveOrUpdate(CsXxHzsqjsPage page);
	/**
	 * 红字信息表申请
	 *
	 * @param page
	 */
	Result hzxxbsq(CsXxHzsqjsPage page);
	/**
	 * 红字信息表同步
	 *
	 * @param param
	 */
	Result hzxxbtb(HzxxbtbParam param);
	/**
	 * 红字信息表撤销
	 *
	 * @param param
	 */
	Result hzxxbcx(HzxxbcxParam param);
	/**
	 * 红字信息表上传
	 *
	 * @param param
	 */
	Result hzxxbsc(HzxxbcxParam param);
	/**
	 * 红字信息表下载
	 *
	 * @param param
	 */
	FileStreamRtn hzxxbxz(HzxxbxzParam param);
	/**
	 * 根据红字申请流水号判断红字申请是否重复
	 *
	 * @param sqlsh
	 */
	CsXxHzsqjs isRepeat(String  sqlsh);
	/**
	 * 全电红字信息表确认
	 *
	 * @param param
	 */
	Result hzxxbqr(QdpHzxxbqrParam param);

	/**
	 * 全电开具负数发票
	 *
	 * @param page
	 */
	Result<InvoiceRtn.InvoiceRtnData> qdhzxxkj(CsXxHzsqjsPage page);
	
}
